#ifndef CORE_TYPES_H
#define CORE_TYPES_H

#include <QtCore/QString>

namespace core
{
class BasicTime;

typedef QString TypeName;
typedef QString TypeValue;
typedef QString OperationName;

typedef QString ValueKeywordMask;

// returns Bool
static const OperationName OPERATION_EQUALTO = "==";
static const OperationName OPERATION_NEQUALTO = "!=";
static const OperationName OPERATION_LESS_THAN = "<";
static const OperationName OPERATION_GREATER_THAN = ">";
static const OperationName OPERATION_LEQUALTO = "<=";
static const OperationName OPERATION_GEQUALTO = ">=";
static const OperationName OPERATION_LAND = "&&";
static const OperationName OPERATION_LOR = "||";
static const OperationName OPERATION_LNOT = "!";

// returns Type or Type&
static const OperationName OPERATION_ADDITION = "+";
static const OperationName OPERATION_SUBSTRACTION = "-";
static const OperationName OPERATION_INCREMENT = "++";
static const OperationName OPERATION_DECREMENT = "--";
static const OperationName OPERATION_MULTIPLICATION = "*";
static const OperationName OPERATION_DIVISION = "/";
static const OperationName OPERATION_MODULO = "%";
}

uint qHash(const core::BasicTime& time);

#endif
